JSON (JavaScript Object Notation) হলো একটি হালকা ওজনের ডেটা এক্সচেঞ্জ ফরম্যাট, যা সাধারণত ওয়েব অ্যাপ্লিকেশনগুলিতে ডেটা স্থানান্তরের জন্য ব্যবহৃত হয়। JSON ফরম্যাটটি কী-ভ্যালু পেয়ার এবং অ্যারে ব্যবহার করে ডেটা রূপান্তর এবং ম্যানিপুলেশনকে সহজ করে তোলে। Java প্রোগ্রামিং ভাষায় JSON এর মাধ্যমে ডেটা ম্যানিপুলেশন করার জন্য বিভিন্ন লাইব্রেরি এবং টুলস ব্যবহার করা যেতে পারে, যেমন Jackson, Gson, বা org.json।
JSON ডেটা ম্যানিপুলেশন: স্টেপ বাই স্টেপ
JSON দিয়ে ডেটা ম্যানিপুলেশন করতে Java এ নিচের পদক্ষেপগুলো অনুসরণ করা হয়:
১. JSON ডেটা পার্সিং (Parsing)
JSON ডেটাকে Java অবজেক্টে পার্স করতে JSON লাইব্রেরি ব্যবহার করা হয়। একটি সাধারণ উদাহরণ হিসেবে, এখানে Jackson লাইব্রেরি ব্যবহার করে JSON ডেটা পার্স করার উদাহরণ দেওয়া হয়েছে।
উদাহরণ:
JSON ডেটা:
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"isStudent": false
}
Jackson লাইব্রেরি দিয়ে পার্সিং:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonParsingExample {
public static void main(String[] args) {
try {
String jsonData = "{ \"name\": \"John\", \"age\": 30, \"address\": { \"street\": \"123 Main St\", \"city\": \"New York\" }, \"isStudent\": false }";
// ObjectMapper ইনস্ট্যান্স তৈরি
ObjectMapper objectMapper = new ObjectMapper();
// JSON থেকে Java অবজেক্টে কনভার্ট
Person person = objectMapper.readValue(jsonData, Person.class);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("Street: " + person.getAddress().getStreet());
System.out.println("City: " + person.getAddress().getCity());
System.out.println("Is Student: " + person.isStudent());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
private Address address;
private boolean isStudent;
// গেটার এবং সেটার মেথড
public String getName() { return name; }
public int getAge() { return age; }
public Address getAddress() { return address; }
public boolean isStudent() { return isStudent; }
}
class Address {
private String street;
private String city;
// গেটার এবং সেটার মেথড
public String getStreet() { return street; }
public String getCity() { return city; }
}
এখানে Jackson লাইব্রেরির ObjectMapper ক্লাস ব্যবহার করা হয়েছে JSON ডেটাকে Person অবজেক্টে রূপান্তর করার জন্য।
২. JSON ডেটা ম্যানিপুলেশন (Manipulating)
JSON ডেটা ম্যানিপুলেশন মানে হলো JSON ডেটাকে পরিবর্তন বা আপডেট করা। আপনি JSON অবজেক্টে ডেটা পরিবর্তন করতে পারেন, যেমন কোন ভ্যালু আপডেট করা, নতুন কী-ভ্যালু পেয়ার যোগ করা, বা কিছু মুছে ফেলা।
উদাহরণ:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class JsonManipulationExample {
public static void main(String[] args) {
try {
// JSON স্ট্রিং
String jsonData = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";
// ObjectMapper ইনস্ট্যান্স তৈরি
ObjectMapper objectMapper = new ObjectMapper();
// JSON স্ট্রিং থেকে JSON অবজেক্টে কনভার্ট
ObjectNode rootNode = (ObjectNode) objectMapper.readTree(jsonData);
// নতুন কী-ভ্যালু পেয়ার যোগ করা
rootNode.put("isStudent", false);
// আগের ভ্যালু পরিবর্তন করা
rootNode.put("city", "Los Angeles");
// JSON অবজেক্টে পরির্বতন প্রিন্ট করা
String updatedJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
System.out.println(updatedJson);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে, ObjectNode ব্যবহার করা হয়েছে JSON অবজেক্টে ম্যানিপুলেশন করার জন্য। আমরা এখানে নতুন কী-ভ্যালু পেয়ার যোগ করেছি এবং পুরানো মান পরিবর্তন করেছি।
৩. JSON ডেটা আউটপুট (Outputting JSON)
ডেটা ম্যানিপুলেশন করার পর, আমরা JSON ডেটাকে আবার স্ট্রিং আকারে আউটপুট করতে পারি। JSON ডেটা আউটপুট করার জন্য Jackson বা Gson লাইব্রেরি ব্যবহার করা যেতে পারে।
উদাহরণ:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonOutputExample {
public static void main(String[] args) {
try {
// JSON অবজেক্ট তৈরি
Person person = new Person();
person.setName("Alice");
person.setAge(25);
// ObjectMapper ইনস্ট্যান্স তৈরি
ObjectMapper objectMapper = new ObjectMapper();
// Java অবজেক্ট থেকে JSON স্ট্রিং এ কনভার্ট
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে writeValueAsString() মেথড ব্যবহার করে Person অবজেক্টটি JSON স্ট্রিংয়ে রূপান্তরিত করা হয়েছে।
৪. JSON অ্যারে ম্যানিপুলেশন
JSON অ্যারে ম্যানিপুলেশনেও একই ধরনের পদ্ধতি ব্যবহার করা হয়। JSON অ্যারে বিভিন্ন ডাটা আইটেম ধারণ করতে পারে, যেমন স্ট্রিং, অবজেক্ট, ইত্যাদি।
উদাহরণ:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
public class JsonArrayExample {
public static void main(String[] args) {
try {
// JSON অ্যারে তৈরি
String jsonData = "[\"Apple\", \"Banana\", \"Orange\"]";
// ObjectMapper ইনস্ট্যান্স তৈরি
ObjectMapper objectMapper = new ObjectMapper();
// JSON অ্যারে পার্স করা
ArrayNode arrayNode = (ArrayNode) objectMapper.readTree(jsonData);
// নতুন উপাদান যোগ করা
arrayNode.add("Grapes");
// JSON অ্যারে প্রিন্ট করা
String updatedJsonArray = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(arrayNode);
System.out.println(updatedJsonArray);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে, JSON অ্যারে Apple, Banana, এবং Orange ধারণ করে, এবং নতুন উপাদান Grapes যোগ করা হয়েছে।
সারাংশ
JSON এর মাধ্যমে ডেটা ম্যানিপুলেশন Java এ খুবই শক্তিশালী এবং কার্যকরী। আপনি JSON ডেটাকে পার্স, ম্যানিপুলেট, এবং আউটপুট করতে পারেন বিভিন্ন লাইব্রেরি ব্যবহার করে, যেমন Jackson বা Gson। JSON স্ট্রিংকে Java অবজেক্টে রূপান্তর করা, পরিবর্তন করা, এবং পুনরায় JSON স্ট্রিং আউটপুট করা সহজ এবং কার্যকরী পদ্ধতি। JSON ডেটা ম্যানিপুলেশন প্রক্রিয়া ওয়েব অ্যাপ্লিকেশন এবং API গুলিতে ডেটা এক্সচেঞ্জ এবং হ্যান্ডলিংকে আরও সহজ করে তোলে।
Read more